import { toast } from '../../utils/extendApi'
import { userStore } from '../../stores/userStore'
import { ComponentWithStore } from 'mobx-miniprogram-bindings'
// 导入防抖函数
import { debounce } from 'miniprogram-licia'
// 需要使用ComponentWithStore构建页面
ComponentWithStore({
  // 获取user仓库中的数据和方法
  storeBindings: {
    store: userStore,
    actions: ['getToken', 'getUserInfo'] // 获取仓库中方法
  },
  methods: {
    // 用于授权登录
    login: debounce(function () {
      console.log("登录开始>>>");
      // 1.使用wx.login来获取用户的临时登录凭证 code
      wx.login({
        success: async (res) => {
          console.log("res",res);
          // {errMsg: "login:ok", code: "0e15GdGa1pCHIJ0FkqGa12hcJ845GdGY"}
          if (res.code) {
            // 2.调用仓库中的方法获取token并存储
            await this.getToken(res.code)
            // 3.等待token获取成功后通知仓库获取用户信息并存储
            await this.getUserInfo()
            // 4.获取用户信息完毕后返回上一级页面
            wx.navigateBack()
            toast('登录成功')
          } else {
            toast('授权失败，请重试')
          }
        }
      })
    }, 500)
  }
})
